<?php

/**
 * Description of Util
 *
 * @author Santiago Benítez <sbenitez@tradesystem.com.ec>
 */
class Util {

    /**
     * Revisa si el usuario tiene acceso dependiendo de las operaciones que se envien
     * @author Santiago Benítez
     * @param array $operations
     * @return boolean resultado
     */
    public static function checkAccess($operations) {
        if (is_array($operations)) {
            foreach ($operations as $operation) {
                if (Yii::app()->user->checkAccess($operation)) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * Register a specific js file in the asset's js folder
     * @param string $jsFile
     * @param int $position the position of the JavaScript code.
     * @see CClientScript::registerScriptFile
     */
    public static function tsRegisterAssetJs($jsFile, $position = CClientScript::POS_END) {
        $assetsPath = Yii::getPathOfAlias(YiiBase::app()->getController()->getModule()->getId() . '.assets');
        $assetsUrl = Yii::app()->assetManager->publish($assetsPath, false, -1, true);
        Yii::app()->getClientScript()->registerScriptFile($assetsUrl . "/js/" . YiiBase::app()->getController()->getId() . "/" . $jsFile, $position);
    }
    /**
     * 
     * @param type $jsFile  Alex yepez
     */
    
      public static function tsRegisterAssetCss($jsFile) {
        $assetsPath = Yii::getPathOfAlias(YiiBase::app()->getController()->getModule()->getId() . '.assets');
        $assetsUrl = Yii::app()->assetManager->publish($assetsPath, false, -1, true);
        Yii::app()->getClientScript()->registerCssFile($assetsUrl.'/css/'. YiiBase::app()->getController()->getId() . "/" . $jsFile);
    }

    /**
     * Al buscar cliente/proveedor/distribuidor, me retorn ael id de la columna seleccionada
     * @param type $button
     * @param type $data
     * @return type
     * @author Ivan Naranjo <inaranjo@tradesystem.com.ec>
     */
    public static function getGridViewId($options, $data) {
        foreach ($options as &$option) {
            if (strpos($option, '$data->') !== false) {
                $propiedad = str_replace('$data->', '', $option);
                $option = $data->$propiedad;
            }
        }
        return $options;
    }


    /**
     * Transforma un arreglo de objetos ActiveRecord para que se desplieguen en un select de HTML
     * @author Santiago Benítez
     * @param type $arrayOptions
     * @return String $options
     */
    public static function toSelectOptions($arrayOptions) {
        $options = array("" => " - Seleccione - ") + CHtml::listData($arrayOptions, 'id', TipificacionIncidencia::representingColumn());
        $htmlOptions = "";
        foreach ($options as $key => $option) {
            $htmlOptions .= '<option value="' . $key . '">' . $option . '</option>';
        }
        return $htmlOptions;
    }

    /**
     * Traduce la fecha actual a español
     * @author  Santiago Benítez
     * @return type
     */
    public static function traducirFechaActual() {
        $meses = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
        return date('d') . " de " . $meses[date('n') - 1] . " del " . date('Y');
    }

    public static function quitarScripts() {
        Yii::app()->clientScript->scriptMap['*.js'] = false;
        Yii::app()->clientScript->scriptMap['*.css'] = false;
    }

    public static function fileSize($bytes) {
//        var_dump($bytes);
        if (gettype($bytes) !== 'integer') {
            echo '';
        }
        if ($bytes >= 1000000000) {
            echo round($bytes / 1000000000, 2) . ' GB';
        } else if ($bytes >= 1000000) {
            echo round($bytes / 1000000, 2) . ' MB';
        } else {
            echo round($bytes / 1000, 2) . ' KB';
        }
    }
    
    
    
    public static function obtenerMeses() {
        return array(
            'Enero',
            'Febrero',
            'Marzo',
            'Abril',
            'Mayo',
            'Junio',
            'Julio',
            'Agosto',
            'Septiembre',
            'Octubre',
            'Noviembre',
            'Diciembre');
    }

    public static function obtenerMesesCortos() {
        return array('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');
    }

    public static function obtenerDias() {
        return array('Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sabado');
    }

    public static function obtenerDiasCortos() {
        return array('Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab');
    }

    public static function obtenerBotonesCalendario() {
        return array(
            'today' => 'hoy',
            'month' => 'mes',
            'week' => 'semana',
            'day' => 'día'
        );
    }

    public static function obtenerColumnasCalendario() {
        return array(
            'week' => 'ddd d',
            'day' => 'dddd',
        );
    }

    public static function obtenerTitulosCalendario() {
        return array(
            'month' => "MMMM yyyy",
            'week' => "MMMM d[, yyyy]{ '-'[ MMMM] d, yyyy}",
            'day' => "dddd d 'de' MMMM, yyyy",
        );
    }
    
    public static function colorCalendario($param) {
      
        $color="#58ACFA";
        if($param=="ARQUITECTURA")
            $color="#F7BE81";
        if($param=="ECAA")
            $color="#51A951";
         if($param=="INGENIERIA")
            $color="#63ACD1";
         if($param=="ENCI")
            $color="#AD4747";
          if($param=="DISEÑO")
            $color="#B1A2C9";
          if($param=="GESTURH")
            $color="#66B9B9";
          if($param=="LENGUAS Y LINGUISTICA")
            $color="#CA82CA";
           if($param=="JURISPRUDENCIA")
            $color="#E2AA70";
            if($param=="COMUNICACION SOCIAL")
            $color="#CC99FF";
          
        return $color;
        
    }
    
     public static function FormatDate($fechaAt, $tipo) {
        if ($fechaAt) {
            $date = str_replace('/', '-', $fechaAt);
            $fechaAt = date($tipo, strtotime($date));
            return $fechaAt;
        }
    }
    
      public static function FechaActual() {
        $tz_object = new DateTimeZone('America/Guayaquil');
        $datetime = new DateTime();
        $datetime->setTimezone($tz_object);
        return $datetime->format('Y-m-d H:i:s');
    }


}

?>
